/**
 * 分页参数
 */
export class PaginationParam {
  /** 指定每页可以显示多少条 */
  public pageSizeOptions = ['10', '20', '30', '40', '50'];

  /**  */
  /** 总条目数 */
  public total = 0;

  /** 当前页数（从1开始） */
  public pageNum = 1;
  public current = 1;

  /** 页大小 */
  public pageSize = 10;

  /** 总页数 */
  public get pages(): number {
    return Math.ceil(this.total / this.pageSize);
  }

  /** 当前页的起始条目索引（从0开始） */
  // public get startRow(): number {
  //   return this.pageSize * (this.pageNum - 1);
  // }

  /** 当前页的末尾条目索引（从0开始） */
  // public get endRow(): number {
  //   return this.pageSize * this.pageNum - 1;
  // }

  /** 显示pageSize */
  public showSizeChanger? = true;

  /** total文字 */
  public showTotal = (total: number): string => {
    return `共计 ${total} 条数据`;
  };

  constructor(init?: Pick<PaginationParam, 'pageNum' | 'pageSize'>) {
    Object.assign(this, init);
  }
}
